using System;
using System.Drawing;
using System.IO;
using System.Text;

namespace OPTFleet.OPTFleet {
	public abstract class Funcionario 
    {
        public static int HORA_DE_ENTRADA = 8;
        public static int HORA_DE_SAIDA = 18;

        private int idfuncionario;
		private String nome;
		private bool disponivel;
        private byte[] foto;

        /*
        public void lol()
        {
            Image foto = null;

            // in
            MemoryStream mem = new MemoryStream(b);
            foto = Image.FromStream(mem);

            // out
            MemoryStream s = new MemoryStream();
            foto.Save(s, foto.RawFormat);
            byte[] arrayImage = s.GetBuffer();
        }
        */

        public int IDfuncionario{
            get { return idfuncionario; }
            set { idfuncionario = value; }
        }

        public String Nome{
            get { return nome; }
            set { nome = value; }
        }

        public bool Disponivel{
            get { return disponivel; }
            set { disponivel = value; }
        }

        public byte[] Foto
        {
            get { return foto; }
            set { foto = value; }
        }

        /*
        public Funcionario(){
            idfuncionario = 0;
            dataNascimento = new DateTime();
            disponivel = false;
        }
        */
        public Funcionario()
        {
            idfuncionario = 0;
            nome = "";
            disponivel = true;
            foto = new byte[0];
        }

        public Funcionario(int idfuncionario, String nome, bool disponivel, byte[] foto)
        {
            this.IDfuncionario = idfuncionario;
            this.Nome = nome;
            this.Disponivel = disponivel;
            if (foto != null)
            {
                this.foto = new byte[foto.Length];
                Array.Copy(foto, this.foto, foto.Length);
            }
            else this.foto = null;
        }

        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("----Funcionario-----");
            sb.Append("\nIDFuncionario: ");
            sb.Append(idfuncionario);
            sb.Append("\nNome: ");
            sb.Append(nome);
            sb.Append("\nDisponivel: ");
            sb.Append(disponivel);
            sb.Append("\n--------------------");

            return (sb.ToString());
        }

	}

}
